OpenCV图像的读取与写入 您所在的位置:网站首页 open images output directory OpenCV图像的读取与写入

OpenCV图像的读取与写入

2023-06-27 09:03| 来源: 网络整理| 查看: 265

「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战」

前言

无论在任何类型的计算机视觉任务中,处理图像或视频都是其中的核心要素,绝大多数计算机视觉都会使用图像或视频作为数据输入的形式。此外,任何项目都应该可以在完成任何类型的处理后生成一些数据,这些数据可以以图像或者其它类型形式的输出。在计算机视觉中,由于这些类型的项目(例如,要处理的图像为输入、由机器学习算法生成的模型处理信息、输出目标信息)的固有特性,因此项目的信息流(输入——处理——输出)间也具有特殊的相关性。

在本节中,我们将首先学习使用 OpenCV 处理构建计算机视觉应用程序所必需的图像。

在 OpenCV 中读取图像

以下示例 load_image.py 展示了如何使用函数 cv2.imshow() 加载图像:

import argparse import cv2 parser = argparse.ArgumentParser() parser.add_argument("path_image", help="path to input image to be displayed") args = parser.parse_args() image = cv2.imread(args.path_image) args = vars(parser.parse_args()) image2 = cv2.imread(args["path_image"]) cv2.imshow("loaded image", image) cv2.imshow("loaded image2", image2) cv2.waitKey(0) cv2.destroyAllWindows() 复制代码

在这个例子中,必需的参数是 path_image,它是我们要加载的图像的路径。利用 args.path_image 和 args["path_image"] 都可以获取图像的路径(从参数中获取值的两种不同方式),然后将它们用作 cv2.imread() 函数的参数。

通过在命令行中执行以下命令,运行脚本:

python load_image.py sigonghuiye.jpeg 复制代码

可以看到运行结果如以下屏幕截图所示:

在 OpenCV 中读取图像

使用 OpenCV 写入图像

以下示例 write_image.py 展示了如何使用函数 cv2.imshow() 加载图像:

import argparse import cv2 parser = argparse.ArgumentParser() parser.add_argument("path_image", help="path to input image to be displayed") parser.add_argument("path_image_output", help="path of the processed image to be saved") args = parser.parse_args() image = cv2.imread(args.path_image) args = vars(parser.parse_args()) cv2.imwrite(args["path_image_output"], image) cv2.waitKey(0) cv2.destroyAllWindows() 复制代码

上述示例中,执行脚本需要的参数是 path_image 和 path_image_output,它们分别是我们要加载的图像的路径以及图像要保存的路径。

通过在命令行中执行以下命令,运行脚本:

python load_image.py sigonghuiye.jpeg copy_image.jpg 复制代码

运行结束后就可以在工作目录中,看到保存的 copy_image.jpg.

计算机视觉项目处理流程示例

计算机视觉项目的常见处理流程是加载图像,执行某种处理,最后输出这个处理过的图像。处理后的图像可以保存到磁盘或者进行展示。为了对计算机视觉项目处理流程有一个完整的认识,在下面的示例中,介绍了这三个步骤(加载、处理和保存)。为了简单起见,处理步骤仅将图像转换为灰度图像,接下来编写脚本 load_processing_save_image.py:

import argparse import cv2 parser = argparse.ArgumentParser() parser.add_argument("path_image_input", help="path to input image to be displayed") parser.add_argument("path_image_output", help="path of the processed image to be saved") args = vars(parser.parse_args()) image_input = cv2.imread(args["path_image_input"]) cv2.imshow("loaded image", image_input) gray_image = cv2.cvtColor(image_input, cv2.COLOR_BGR2GRAY) cv2.imshow("gray image", gray_image) cv2.imwrite(args["path_image_output"], gray_image) cv2.waitKey(0) cv2.destroyAllWindows() 复制代码

上述示例中,执行脚本需要两个必需的参数。第一个是 path_image_input,它表示要加载的图像的路径。第二个是 path_image_output,它表示要保存的结果图像的路径。处理步骤仅将加载的图像转换为灰度图像:

gray_image = cv2.cvtColor(image_input, cv2.COLOR_BGR2GRAY) 复制代码

需要注意的是,cv2.cvtColor 函数第二个参数 cv2.COLOR_BGR2GRAY 假定加载的图像是 BGR 彩色图像。如果已经加载了 RGB 彩色图像并且想要将其转换为灰度,则应该使用 cv2.COLOR_RGB2GRAY。 通过在命令行中执行以下命令,运行脚本:

python load_processing_save_image.py gray_image.png 复制代码

可以看到运行结果如以下屏幕截图所示,同时,在运行结束后就可以在工作目录中,看到保存的灰度图像 gray_image.jpg:

计算机视觉项目处理流程示例

相关链接

OpenCV图像处理基础

OpenCV中的坐标系与图像通道顺序

OpenCV读取和修改图像像素值



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有